const NotificationDaemon = imports.ui.notificationDaemon;
const WindowAttentionHandler = imports.ui.windowAttentionHandler;
const Scripting = imports.ui.scripting;
+const SessionMode = imports.ui.sessionMode;
const ShellDBus = imports.ui.shellDBus;
const TelepathyClient = imports.ui.telepathyClient;
const WindowManager = imports.ui.windowManager;
let telepathyClient = null;
let ctrlAltTabManager = null;
let recorder = null;
+let sessionMode = null;
let shellDBusService = null;
let modalCount = 0;
let modalActorFocusStack = [];
Gio.DesktopAppInfo.set_desktop_env('GNOME');
+ sessionMode = new SessionMode.SessionMode();
shellDBusService = new ShellDBus.GnomeShell();
// Ensure ShellWindowTracker and ShellAppUsage are initialized; this will
xdndHandler = new XdndHandler.XdndHandler();
ctrlAltTabManager = new CtrlAltTab.CtrlAltTabManager();
// This overview object is just a stub for non-user sessions
- overview = new Overview.Overview({ isDummy: global.session_type != Shell.SessionType.USER });
+ overview = new Overview.Overview({ isDummy: sessionMode.sessionType != Shell.SessionType.USER });
magnifier = new Magnifier.Magnifier();
statusIconDispatcher = new StatusIconDispatcher.StatusIconDispatcher();
panel = new Panel.Panel();
notificationDaemon = new NotificationDaemon.NotificationDaemon();
windowAttentionHandler = new WindowAttentionHandler.WindowAttentionHandler();
- if (global.session_type == Shell.SessionType.USER)
+ if (sessionMode.sessionType == Shell.SessionType.USER)
_createUserSession();
- else if (global.session_type == Shell.SessionType.GDM)
+ else if (sessionMode.sessionType == Shell.SessionType.GDM)
_createGDMSession();
panel.startStatusArea();
keyboard.init();
overview.init();
- if (global.session_type == Shell.SessionType.USER)
+ if (sessionMode.sessionType == Shell.SessionType.USER)
_initUserSession();
statusIconDispatcher.start(messageTray.actor);
let theme = new St.Theme ({ application_stylesheet: cssStylesheet });
- if (global.session_type == Shell.SessionType.GDM)
+ if (sessionMode.sessionType == Shell.SessionType.GDM)
theme.load_stylesheet(_gdmCssStylesheet);
if (previousTheme) {
// Other bindings are only available to the user session when the overview is up and
// no modal dialog is present.
- if (global.session_type == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
+ if (sessionMode.sessionType == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
return false;
// This isn't a Meta.KeyBindingAction yet
}
// None of the other bindings are relevant outside of the user's session
- if (global.session_type != Shell.SessionType.USER)
+ if (sessionMode.sessionType != Shell.SessionType.USER)
return false;
switch (action) {
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
/* Button on the left side of the panel. */
- if (global.session_type == Shell.SessionType.USER) {
+ if (Main.sessionMode.sessionType == Shell.SessionType.USER) {
this._activitiesButton = new ActivitiesButton();
this._activities = this._activitiesButton.actor;
this._leftBox.add(this._activities);
}
/* center */
- if (global.session_type == Shell.SessionType.USER)
+ if (Main.sessionMode.sessionType == Shell.SessionType.USER)
this._dateMenu = new DateMenu.DateMenuButton({ showEvents: true });
else
this._dateMenu = new DateMenu.DateMenuButton({ showEvents: false });
this._menus.addMenu(this._dateMenu.menu);
/* right */
- if (global.session_type == Shell.SessionType.GDM) {
+ if (Main.sessionMode.sessionType == Shell.SessionType.GDM) {
this._status_area_order = GDM_STATUS_AREA_ORDER;
this._status_area_shell_implementation = GDM_STATUS_AREA_SHELL_IMPLEMENTATION;
} else {
--- /dev/null
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Lang = imports.lang;
+const Shell = imports.gi.Shell;
+
+const Params = imports.misc.params;
+
+const DEFAULT_MODE = 'user';
+
+const _modes = {
+ 'gdm': { sessionType: Shell.SessionType.GDM },
+
+ 'user': { sessionType: Shell.SessionType.USER }
+};
+
+const SessionMode = new Lang.Class({
+ Name: 'SessionMode',
+
+ _init: function() {
+ let params = _modes[global.session_mode];
+
+ params = Params.parse(params, _modes[DEFAULT_MODE]);
+ Lang.copyProperties(params, this);
+ }
+});